#!/bin/bash

# list_group_users.sh
# 功能说明:
# 1. 列出属于特定用户组的所有用户。
# 2. 支持按命令行传入组名查询。
# 3. 如果组不存在或为空组，会输出相应提示。

# 列出特定组的用户
list_group_users() {
  local group_name="$1"

  # 检查组是否存在
  if ! getent group "$group_name" &>/dev/null; then
    echo "Group '$group_name' does not exist."
    exit 1
  fi

  # 获取组内的用户列表
  local group_users
  group_users=$(getent group "$group_name" | awk -F: '{print $4}')

  # 如果组内没有用户
  if [[ -z "$group_users" ]]; then
    echo "Group '$group_name' has no users."
  else
    echo "Users in group '$group_name':"
    echo "$group_users" | tr ',' '\n' | sort
  fi
}

# 主函数
main() {
  if [[ $# -lt 1 ]]; then
    echo "Usage: $0 <group_name>"
    echo "  group_name: Specify the name of the group to list users."
    exit 1
  fi

  local group_name="$1"
  list_group_users "$group_name"
}

# 执行主函数
main "$@"

